home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C128 / Monthly Disks / (y)aca.d64 / diskdoc.doc next >
Text File  |  2007-02-04  |  32KB  |  559 lines

  1.  
  2. ---------------------------------------------------------------------
  3. ╘ H E   ─ ╔ ╙ ╦   ─ ╧ ├ ╘ ╧ ╥
  4. ---------------------------------------------------------------------
  5.  
  6. ─╔╙╦ ╒╘╔╠╔╘┘ ╨╥╧╟╥┴═ ╞╧╥ ╘╚┼ ├╧══╧─╧╥┼ ╓╔├-20, ├-64 ┴╬─ ├-128
  7.  
  8. ─OCUMENTATION WRITTEN BY ╦EVIN ╚ISEL
  9. ╫ITH SPECIAL THANKS TO ═IKE ╫ILLIS
  10.  
  11. ╘HE ─╔╙╦ ─╧├╘╧╥ PROGRAM WITH VERSIONS FOR THE ├OMMODORE ╓╔├-20 (OF ANY SIZE
  12. MEMORY), ├-64 AND ├-128 IS ONE OF THE MOST POWERFUL DISK UTILITIES THAT YOU
  13. WILL EVER OWN.  ╔T ALLOWS YOU TO NOT ONLY VIEW BUT CHANGE ANY BYTE OF DATA
  14. STORED ON ANY OF YOUR 1540, 1541, 1570, 1571, 4040 AND COMPATIBLE DISKETTES.
  15. ╫ITH ╘HE ─╔╙╦ ─╧├╘╧╥ YOU CAN PERFORM TASKS THAT NORMALLY WOULD INVOLVE HOURS
  16. OF PROGRAMMING, ACTUALLY REPAIR "CRASHED" DISK DATA AND HAVE A LITTLE FUN ALL
  17. AT THE SAME TIME.  ┬EFORE WE DO HAVE ALL THIS FUN, WE'LL HAVE TO TAKE A LOOK
  18. AT HOW ├OMMODORE HAS SET UP THE FORMAT OF THEIR DISKS.  ╫E'LL LIMIT OUR
  19. DISCUSSION TO WHAT IS REFERRED TO AS THE ├OMMODORE "╟├╥" FORMAT.  ╘HAT'S THE
  20. FORMAT NORMALLY USED ON 1540, 1541, 1570, 1571, 4040, ═╙─ AND SOME OTHER
  21. ├OMMODORE "WORK ALIKE" MACHINES AND DISKS.  ╘HERE ARE OTHER ├OMMODORE ╟├╥
  22. FORMATS LIKE THAT USED ON OLDER MACHINES LIKE THE 8050, 8250, ╙╞─-1001 AND
  23. EVEN A SPECIAL FORMAT FOR ├╨/═ BUT WHILE YOU CAN READ AND MODIFY THESE TYPES
  24. WITH ╘HE ─╔╙╦ ─╧├╘╧╥, WE WILL NOT REALLY DELVE TOO DEEP INTO THEM AT THIS
  25. TIME.
  26.  
  27. ╔F YOU COULD SEE THE ACTUAL MAGNETIC PATTERNS ON THE DISKETTE, YOU WOULD
  28. NOTICE THAT THAT THERE ARE 35 CONCENTRIC TRACKS OF DATA ARRANGED SOMEWHAT LIKE
  29. A PHONOGRAPH RECORD EXCEPT THAT THE 35 TRACKS DO NOT LEAD INTO ONE ANOTHER.
  30. ╒NTIL RECENTLY, THE STANDARD ├OMMODORE FORMAT ONLY ALLOWED USE OF A SINGLE
  31. SIDE OF THE DISKETTE.  ╘HE NEW 1571 DISK DRIVE IS ACTUALLY DOUBLE-SIDED AND
  32. CAN STORE TWICE AS MUCH INFORMATION AS A SINGLE-SIDED DRIVE BY PLACING AN
  33. ADDITIONAL 35 TRACKS ON THE OPPOSITE SIDE OF THE DISKETTE.  ╔F YOU SQUINTED
  34. YOUR EYES A LITTLE HARDER YOU WOULD SEE THAT EACH TRACK IS SECTIONED OFF INTO
  35. SMALLER PIECES WHICH WE CALL SECTORS OR BLOCKS (A SECTOR IS THE SAME AS A
  36. BLOCK.)  ┬ECAUSE THE OUTERMOST TRACK (TRACK #1) IS MUCH LARGER OR LONGER THAN
  37. THE INNERMOST TRACK (TRACK #35), IT CONTAINS MORE SECTORS OR BLOCKS.  ╔N FACT,
  38. HERE IS HOW IT BREAKS DOWN (THE TRACK NUMBERS SHOWN IN PARENTHESIS APPLY TO
  39. THE SECOND SIDE OF DOUBLE-SIDED DISKS):
  40.  
  41.     ╘╥┴├╦#            ╙┼├╘╧╥#╙
  42.     &1-17  (36-52)    0-20  (21 ╘╧╘┴╠)
  43.     18-24  (53-59)    0-18  (19 ╘╧╘┴╠)
  44.     25-30  (60-65)    0-17  (18 ╘╧╘┴╠)
  45.     31-35  (66-70)    0-16  (17 ╘╧╘┴╠)
  46.  
  47. ┼ACH SECTOR HOLDS 256 BYTES OF DATA.  ╠ET'S SEE...THAT'S 17*21 + 7*19 + 6*18 +
  48. 5*17 = 683 SECTORS * 256 BYTES IN EACH SECTOR...YES THAT'S 174,848 BYTES OF
  49. STORAGE ON A SINGLE-SIDED DISKETTE (DOUBLE THAT FIGURE FOR DOUBLE SIDED
  50. DISKS.)  ╘HE DRIVE NEEDS SOME OF THAT SO THE REAL "USER AVAILABLE" SPACE IS
  51. ACTUALLY SOMEWHERE AROUND 168,656 FOR SINGLE-SIDED DISKS AND 337,312 FOR
  52. DOUBLE-SIDED DISKS.  ├OMPARED TO OTHER "SINGLE DENSITY" 5 1/4 INCH DISKETTE
  53. FORMATS, THIS FIGURE IS QUITE IMPRESSIVE.
  54.  
  55. ╠ET'S LOOK AT THE FIRST SECTOR OF DATA, TRACK 18 AND SECTOR 0.  ╘HE DISK DRIVE
  56. STARTS STORING ITS DATA HERE, IN THE MIDDLE OF THE DISKETTE, TO SPEED UP ITS
  57. OPERATION.  ╔F YOU HAVE ╘HE ─╔╙╦ ─╧├╘╧╥ PROGRAM, ╠╧┴─ AND ╥╒╬ IT NOW.  ┘OU
  58. DON'T NEED IT FOR THIS DISCUSSION, BUT IT SURE WILL HELP.  ╚IT ANY KEY TO
  59. START UP THEN ENTER "18" FOR THE TRACK AND "0" FOR THE SECTOR.  ╘HE SCREEN
  60. WILL FILL WITH WHAT LOOKS LIKE SEMI-GIBBERISH.  ┘OU ARE NOW LOOKING AT A
  61. SINGLE SECTOR OF DISKETTE DATA.  ╔F YOU HAVE THE ├-64 OR ├-128 VERSION OF ╘HE
  62. ─╔╙╦ ─╧├╘╧╥, A LIST OF ONE KEY COMMANDS AVAILABLE TO YOU ARE DISPLAYED ALONG
  63. WITH A SHORT DEFINITION OF EACH COMMAND.  ╘HE ╓╔├-20 VERSION DISPLAYS JUST THE
  64. ONE KEY COMMANDS BECAUSE OF ITS SMALLER SCREEN, BUT PRESSING "╚" DISPLAYS A
  65. ╚┼╠╨ SCREEN IF YOU FORGET WHAT THESE COMMANDS ARE.  ╫E WILL SEE HOW TO USE ALL
  66. OF THESE POWERFUL COMMANDS LATER IN THIS DISCUSSION.
  67.  
  68. ┘OU ARE NOW LOOKING AT A SPECIAL SECTOR WHERE THE DRIVE STORES IT'S ┬LOCK
  69. ┴VAILABILITY ═AP (┬┴═) AND OTHER INFORMATION ABOUT THE DISKETTE.  ╘HIS SECTOR
  70. IS THE FIRST SECTOR IN THE FILE THAT HOLDS THE DISKETTE'S DIRECTORY AND IS
  71. GENERALLY REFERRED TO AS THE "DIRECTORY HEADER".  ╙UBSEQUENT DIRECTORY SECTORS
  72. CONTAIN THE NAMES AND OTHER DATA PERTAINING TO THE REMAINING FILES ON THE
  73. DISKETTE.
  74.  
  75. ╬OTICE THAT YOUR CURSOR IS IN THE UPPER LEFT CORNER OF THE SCREEN.  ╒SE THE
  76. CURSOR CONTROL KEYS TO MOVE THE CURSOR AROUND.  ╘WO INDICATORS, "VALUE" AND
  77. "POSITION", WILL CHANGE AS THE CURSOR MOVES AROUND THE SCREEN.  ┴S YOU MAY
  78. RECALL, EACH SECTOR CONTAINS 256 BYTES WHICH ARE NUMBERED (BY THEIR POSITION)
  79. FROM 0 TO 255.  ╔F YOU TAP THE ╚╧═┼ KEY THE CURSOR'S POSITION SHOULD BE 0.  ┴
  80. "CURSOR LEFT" WILL CAUSE THE CURSOR TO "WRAP AROUND" TO THE LAST SPACE IN THE
  81. SECTOR AND SHOULD YIELD A POSITION OF 255.
  82.  
  83. ╨RESS ╚╧═┼ AGAIN AND NOTICE THE VALUE OF THE BYTE IN POSITION 0.  ╔T SHOULD BE
  84. 18.  ╘HE VALUE OF THE BYTE IN POSITION 1 SHOULD BE 1.  ╘HE FIRST TWO BYTES OF
  85. EVERY SECTOR ON THE DISK ARE "POINTERS".  ╘HEY TELL THE DRIVE WHERE THE NEXT
  86. TRACK AND SECTOR OF THE DIRECTORY FILE (THE ONE WE'RE LOOKING AT NOW) IS
  87. LOCATED.  ╘HE NEXT TRACK AND SECTOR IS TRACK 18, SECTOR 1.  ╘HE BYTE IN
  88. POSITION 2 WILL HAVE A VALUE OF 65 WHICH IS DISPLAYED BY ╘HE ─╔╙╦ ─╧├╘╧╥ AS AN
  89. ┴.  ╘HIS TELLS THE DRIVE WHICH ├OMMODORE DISK FORMAT THE DISK IS.  ╔F THIS
  90. BYTE IS ANYTHING OTHER THAN AN ┴ (OR 65) THEN YOUR DRIVE WILL REFUSE WRITE TO
  91. IT.  ╔T WILL READ FINE, BUT IT WILL NOT WRITE.  ╘HE NEXT BYTE, #3 IS USED TO
  92. TELL A DOUBLE-SIDED DRIVE WHETHER OR NOT THE DISKETTE HAS BEEN FORMATTED AS A
  93. DOUBLE-SIDED DISKETTE.  ╔F IT IS SINGLE-SIDED THE VALUE OF THE BYTE IN THIS
  94. POSITION WILL BE ZERO.  ╞OR DOUBLE-SIDED, THE BYTE WILL HAVE A VALUE OF 128.
  95.  
  96. ╨OSITIONS 4-143 CONTAIN THE ┬LOCK ┴VAILABILITY ═AP OR "┬┴═".  ─ON'T EXPECT TO
  97. BE ABLE TO MAKE SENSE OF THE ┬┴═ BY SIMPLY VIEWING IT ON YOUR SCREEN (ALTHOUGH
  98. SOME VERSIONS OF ╘HE ─╔╙╦ ─╧├╘╧╥ TRANSLATE EACH ENTRY INTO A SMALL CHART
  99. DISPLAYED ELSEWHERE ON THE SCREEN.)  ╔T IS PLACED HERE BY THE DRIVE IN THE
  100. FORM OF BINARY NUMBERS.  ╘HE ┬┴═ IS LIKE A ROAD MAP FOR THE DISK DRIVE.  ╔T
  101. TELLS THE DRIVE WHICH SECTORS HOLD VALID DATA AND WHICH ONES ARE FREE TO WRITE
  102. TO.  ╫HEN YOU USE THE ╓┴╠╔─┴╘┼ OR ├╧╠╠┼├╘ COMMAND THE DRIVE REORGANIZES ITS
  103. ┬┴═.  ─ON'T EVER TRY TO ALTER THE ┬┴═ UNLESS YOU REALLY KNOW WHAT YOU ARE
  104. DOING.  ┘OU CAN REALLY MESS THINGS UP BY PLAYING AROUND HERE.  ╥EMEMBER THAT
  105. ╘HE ─╔╙╦ ─╧├╘╧╥ DOES NOT COME WITH MALPRACTICE INSURANCE!
  106.  
  107. ═OVE YOUR CURSOR TO POSITION 144.  ╘HINGS HERE MAY LOOK A BIT FAMILIAR.
  108. ╘HAT'S RIGHT, YOU ARE LOOKING AT THE DISK'S NAME.  ╘HE DISK NAME IS STORED AT
  109. POSITIONS 144-159.  ┬YTES #160 AND #161 WILL BE SHIFTED SPACES (VALUE 160.)
  110. ┬YTES #162 AND #163 CONTAIN THE DISK'S ╔─ CHARACTERS.  ╘HOSE ARE THE TWO
  111. CHARACTERS YOU GIVE AFTER THE DISK NAME WHEN YOU FORMAT A DISK.  ┴NOTHER
  112. SHIFTED SPACE IS AT #164 AND THE NEXT TWO BYTES (165,166) CONTAIN THE ─╧╙
  113. VERSION IDENTIFIER- 2┴.  ┬YTES #167-170 HAVE SHIFTED SPACES AND #171-255 ARE
  114. ALL UNUSED AND CONTAIN VALUES OF 0, WHICH ARE DISPLAYED AS "@"'S ("AT" SIGNS)
  115. ON SINGLE-SIDED DISKS.  ┬YTES #221-225 ARE USED ON DOUBLE-SIDED DISKS TO STORE
  116. THE NUMBER OF SECTORS THAT ARE "FREE" IN TRACKS 36-70.  ╞OR INSTANCE, IF THE
  117. BYTE IN POSITION #221 CONTAINS VALUE OF FIVE, THAT MEANS THAT FIVE SECTORS IN
  118. TRACK 36 ARE UNUSED RIGHT NOW.
  119.  
  120. ╘RACK 18, ╙ECTOR 0 (┬┴═ AND ─IRECTORY ╚EADER)
  121. ---------------------------------------------
  122.  
  123.     ┬┘╘┼    ╓┴╠╒┼    ─┼╞╔╬╔╘╔╧╬
  124.    ------------------------------------------------------------------
  125.    0,1..... 18,1.... ╘RACK AND SECTOR OF NEXT BLOCK IN FILE.
  126.    2....... 65...... ├HARACTER "┴" - 1540/1541/4040 FORMAT.
  127.    3....... 0/128... ╞LAG FOR SINGLE/DOUBLE SIDED MODE.
  128.    4-143............ ┬IT MAP OF AVAILABLE SECTORS (┬┴═.)
  129.    144-161.......... ─ISK NAME WITH SHIFTED SPACES.
  130.    162,163.......... ╘WO DISK ╔─ CHARACTERS.
  131.    164..... 160..... ╙HIFTED SPACE.
  132.    165,166  50,65... ├HARACTERS "2┴" - ─╧╙ IDENTIFIER.
  133.    167-170  160..... ╙HIFTED SPACES.
  134.    171-255  0....... ╒NUSED FOR ╙╙ DISKS BUT MAY CONTAIN OTHER VALUES.
  135.    221-255  ........ ┬LOCKS FREE FOR TRACKS 36-70 (─╙ DISKS ONLY.)
  136.  
  137.  
  138. ╙INCE THE ┬┴═ IN TRACK 18, SECTOR 0 CAN ONLY HOLD THE BLOCK MAP OF TRACKS
  139. 1-35, DOUBLE-SIDED DISKS MAKE USE OF SECTOR 0 ON TRACK 53 TO STORE A SECOND
  140. ┬┴═ FOR TRACKS 36-70.
  141.  
  142. ╘HE NEXT TRACK AND SECTOR THAT WE NEED TO SEE IS 18,1 (FROM NOW ON, THIS IS
  143. HOW WE'LL DENOTE TRACK AND SECTOR NUMBERS.)  ╘HERE ARE TWO WAYS TO VIEW THAT
  144. TRACK AND SECTOR.  ╫E COULD USE THE "╙" (DIFFERENT SECTOR) COMMAND (THIS
  145. COMMAND IS "┬" FOR "BLOCK" ON SOME ─╔╙╦ ─╧├╘╧╥ VERSIONS) AND ENTER THE TRACK
  146. AND SECTOR NUMBERS OF THE SECTOR WE WANT TO GO TO, ╧╥ SINCE IT IS THE NEXT
  147. SECTOR IN OUR FILE WE CAN USE THE "╬" (NEXT SECTOR) COMMAND.  ╨RESS "╬" NOW.
  148.  
  149. ╘HIS IS THE FIRST SECTOR OF THE DISK'S DIRECTORY ENTRIES AND YOU SHOULD
  150. RECOGNIZE THE NAMES OF SOME OF THE FILES ON THE DISK.  ┴S ALWAYS, THE NEXT
  151. TRACK AND SECTOR OF THIS FILE IS DEFINED BY BYTES #0 AND #1.  ╔F THERE ARE
  152. MORE THAN 8 FILES ON YOUR DISKETTE, BYTE #0 SHOULD HAVE A VALUE OF 18 AND BYTE
  153. #1 WILL BE 4.  ╘HE NEXT PART OF THE SECTOR IS DIVIDED INTO EIGHT DIFFERENT
  154. SECTIONS THAT HOLD DATA ABOUT THE FIRST EIGHT FILES ON THE DISK:
  155.  
  156. ╘RACK 18, ╙ECTOR 1 (─IRECTORY SECTOR)
  157. -------------------------------------
  158.  
  159.    ┬┘╘┼     ╓┴╠╒┼    ─┼╞╔╬╔╘╔╧╬
  160. -------------------------------------------------------------
  161.    0,1..... 18,4.... ╘RACK & ╙ECTOR OF NEXT DIRECTORY SECTOR.
  162.    2-31............. ╞ILE ENTRY 1
  163.    34-63............ ╞ILE ENTRY 2
  164.    66-95............ ╞ILE ENTRY 3
  165.    98-127........... ╞ILE ENTRY 4
  166.    130-159.......... ╞ILE ENTRY 5
  167.    162-191.......... ╞ILE ENTRY 6
  168.    194-223.......... ╞ILE ENTRY 7
  169.    226-255.......... ╞ILE ENTRY 8
  170.  
  171.  
  172. ┘OU MAY NOTICE THAT EACH FILE ENTRY IS SEPARATED BY TWO BYTES WHICH ARE NOT
  173. USED.  ╘HE CHART THAT FOLLOWS SHOWS THE BREAKDOWN FOR A ╙╔╬╟╠┼ ╞╔╠┼ ENTRY
  174. STARTING WITH THE FIRST BYTE OF THAT ENTRY.  ╞OR EXAMPLE, BYTE #2 OF THE FIRST
  175. FILE ENTRY IS ACTUALLY BYTE #4 OF THE SECTOR.  ╘HIS IS HOW EACH FILE ENTRY IS
  176. LAID OUT IN THIS AND ALL SUCCESSIVE DIRECTORY SECTORS:
  177.  
  178. ╙INGLE ─IRECTORY ╞ILE ┼NTRY:
  179. ----------------------------
  180.  
  181.    ┬┘╘┼   ╓┴╠╒┼      ─┼╞╔╬╔╘╔╧╬
  182. ------------------------------------------------------------
  183.    0................ ╞ILE TYPE AS FOLLOWS:
  184.           128....... ─┼╠-DELETED
  185.           129....... ╙┼╤-SEQUENTIAL
  186.           130....... ╨╥╟-PROGRAM
  187.           131....... ╒╙╥-USER
  188.           132....... ╥┼╠-RELATIVE
  189.    1,2.............. ╘RACK AND SECTOR OF WHERE FILE BEGINS.
  190.    3-18............. ╞ILE NAME "PADDED" WITH SHIFTED SPACES.
  191.    19-20............ ╥┼╠ ONLY-╘&╙ OF 1ST SIDE SECTOR BLOCK.
  192.    21............... ╥┼╠ ONLY-╥ECORD SIZE.
  193.    22-25............ ╒NUSED.
  194.    26,27............ ╘&╙ OF REPLACEMENT FILE-╙┴╓┼ W/╥┼╨╠┴├┼.
  195.    28,29............ # OF SECTORS IN FILE:LOW BYTE,HIGH BYTE.
  196.  
  197.  
  198. ╨AY ATTENTION TO BYTE #0 IN THE FILE ENTRY.  ╘HIS BYTE DEFINES WHICH TYPE THE
  199. FILE IS.  ╔F THE BYTE IN THIS POSITION HAS A VALUE OF 130 THE DRIVE SEES THAT
  200. FILE AS A PROGRAM OR "╨╥╟" FILE.  ╔T'S NOT OFTEN THAT YOU SEE ─┼╠ FILES.
  201. (╘HEY ARE FAIRLY UNDOCUMENTED BUT EXPERIMENTATION HAS SHOWN THAT YOU CAN ╧╨┼╬
  202. AND READ THEM BUT IF YOU TRY TO WRITE THEM THEY TURN UP ON THE DIRECTORY AS
  203. ╙┼╤ FILES.)
  204.  
  205. ╔'M SURE YOU'VE SEEN ╨╥╟ AND ╙┼╤ FILES.  ┬UT WHAT ARE ╒╙╥ (USER) FILES?  ╔'M
  206. GLAD YOU ASKED!  ╒╙╥ FILES ARE EXACTLY THE SAME AS ╙┼╤ (SEQUENTIAL) FILES
  207. EXCEPT THAT THEY HAVE A DIFFERENT NAME.  ╘HIS MAKES THEM STAND OUT WHEN YOU
  208. LIST A DIRECTORY AND REMINDS YOU THAT YOU MAY HAVE DECIDED TO DO SOMETHING A
  209. BIT DIFFERENT WITH THEM.  ╧╨┼╬ING AND READING ╒╙╥ FILES REQUIRES THE SAME
  210. SYNTAX AS SEQUENTIAL FILES EXCEPT THAT THE LETTER "╒" IS SUBSTITUTED FOR THE
  211. "╙" IN THE ╧╨┼╬ COMMAND.  ╫E ARE NOT GOING TO DISCUSS ╥┼╠ATIVE FILES HERE.
  212. ╘╚┴╘ SUBJECT STILL BAFFLES YOUR HUMBLE AUTHOR AND APPARENTLY SOME OF THE
  213. ├OMMODORE MANUAL WRITERS AS WELL!
  214.  
  215. ═OVE YOUR CURSOR TO POSITION #2.  ╘HIS IS THE FIRST BYTE (#0) OF THE FIRST
  216. FILE ENTRY OF THE DIRECTORY.  ╔TS VALUE TELLS YOU WHAT TYPE OF FILE IT IS AND
  217. MOST LIKELY WILL BE 129 (SEQUENTIAL) OR 130 (PROGRAM.)  ╘HE CHARACTERS THAT
  218. ╘HE ─╔╙╦ ─╧├╘╧╥ DISPLAYS FOR THESE VALUES WILL EITHER BE A REVERSED "A" OR
  219. "B".  ╘HE TWO BYTES DIRECTLY FOLLOWING THE FILE TYPE TELL YOU (AND THE DRIVE)
  220. WHERE THE ACTUAL FILE IS.  ╔N MOST CASES THE DISK DRIVE STORES THE FIRST FILE
  221. AT 17,0 AND THESE ARE THE VALUES YOU MAY EXPECT HERE.  ╔F YOU THINK YOU KNOW
  222. HOW TO USE THE "╙" (NEW SECTOR) COMMAND WE'LL LEARN A NEW COMMAND.  ╨LACE THE
  223. CURSOR IN POSITION #3.  ╬OW YOU CAN USE THE "╩" (JUMP TO LINK UNDER CURSOR)
  224. COMMAND.  ╘HIS CAUSES ╘HE ─╔╙╦ ─╧├╘╧╥ TO SEARCH FOR AND DISPLAY THE TRACK AND
  225. SECTOR THAT THE CURSOR IS INDICATING.  ╔F YOU DON'T HAVE THE CURSOR PLACED
  226. CORRECTLY, YOU WILL PROBABLY BE SPECIFYING AN ILLEGAL SECTOR AND ╘HE ─╔╙╦
  227. ─╧├╘╧╥ WILL TELL YOU.  ╔F THIS HAS HAPPENED, YOU CAN JUST INPUT NEW TRACK AND
  228. SECTOR NUMBERS...GO BACK TO 18,1 AND TRY IT AGAIN.
  229.  
  230. ╙INCE IT IS VERY LIKELY THAT YOU ARE NOW LOOKING AT 17,0 AND IT IS ALSO A
  231. PROGRAM FILE WE'LL COVER THAT NEXT.  ┬UT BEFORE WE LOOK AT THE FILE, HIT THE
  232. "+" KEY.  ╘HIS COMMAND TELLS ╘HE ─╔╙╦ ─╧├╘╧╥ TO GO TO THE NEXT SECTOR ON THE
  233. CURRENT TRACK, ╬╧╘ THE NEXT SECTOR IN THE FILE.  ┘OU WILL BE LOOKING AT 17,1
  234. NOW.  ╔T MAY NOT EVEN CONTAIN ANY DATA FROM THE FILE YOU JUST LEFT.  ╘O GET
  235. BACK TO 17,0 JUST HIT THE "-" KEY WHICH DOES JUST THE OPPOSITE OF THE "+"
  236. COMMAND.
  237.  
  238. ┘OU MIGHT BE SAYING TO YOURSELF, "╚EY, THIS DOESN'T LOOK LIKE A PROGRAM!
  239. ╫HERE ARE THE ╨╥╔╬╘S, ╨╧╦┼S, ╨┼┼╦S AND ╥┼═S?".  ╫ELL, THEY ARE ALL STILL THERE
  240. BUT HAVE BEEN "TOKENIZED" INTO ONE OR TWO BYTE VALUES.  ┘OUR ├OMMODORE
  241. COMPUTER STORES THE ┬┴╙╔├ KEYWORDS IN THIS MANNER TO SAVE MEMORY AND SPEED
  242. EXECUTION.  ╫HEN YOU ╠╔╙╘, THE COMPUTER TRANSLATES THESE TOKENS FOR YOU SO IT
  243. IS EASIER TO READ BUT ALL ┬┴╙╔├ KEYWORDS AND SOME OPERATORS ARE STORED USING
  244. ONLY ONE OR TWO BYTES.
  245.  
  246. ┴T THIS POINT, YOU MAY WANT TO LOOK AT A ┬┴╙╔├ PROGRAM THAT YOU ARE FAMILIAR
  247. WITH, PERHAPS ONE THAT YOU HAVE WRITTEN YOURSELF.  ╒SE THE "╤" (QUIT) COMMAND
  248. AND REMOVE YOUR DISKETTE.  ┬ECAUSE WE WILL ACTUALLY BE RE-WRITING INFORMATION
  249. TO YOUR DISKETTE, YOU WILL WANT TO USE A SPARE THAT IS EXPENDABLE.  ╔N FACT,
  250. YOU SHOULD SIMPLY MAKE A BACK-UP COPY OF A DISK YOU USE ALL THE TIME SO THINGS
  251. LOOK FAMILIAR.
  252.  
  253. ╧NCE THE PRACTICE DISKETTE IS IN THE DRIVE, HIT ANY KEY.  ╞IND THE PROGRAM YOU
  254. WANT TO LOOK AT BY STARTING WITH TRACK 18 AND SECTOR 1 (THE DIRECTORY.)  ╒SE
  255. THE "╬" COMMAND TO ADVANCE TO SUBSEQUENT SECTORS IN THE DIRECTORY UNTIL YOU
  256. SEE YOUR PROGRAM.  ╨OSITION YOUR CURSOR AT BYTE #1 (THE SECOND BYTE) OF THE
  257. ╞╔╠┼ ┼╬╘╥┘ FOR THAT FILE (TWO BYTES DIRECTLY BEFORE THE PROGRAM NAME IS WHERE
  258. YOU WANT TO BE.)  ╘HE "╩" COMMAND SHOULD TAKE YOU TO THE FIRST TRACK AND
  259. SECTOR WHERE YOUR PROGRAM IS LOCATED.
  260.  
  261. ╔F YOU NOW SEE SOMETHING THAT VAGUELY RESEMBLES THE PROGRAM YOU WERE LOOKING
  262. FOR, GREAT!  ╨RESS THE ╚╧═┼ KEY AND WE'LL TAKE A LOOK AT YOUR PROGRAM.
  263. ╨ROGRAM FILES ARE FORMATTED LIKE THIS:
  264.  
  265. ╨ROGRAM (╨╥╟) FILE FORMAT:
  266. --------------------------
  267.     ┬┘╘┼             ─┼╞╔╬╔╘╔╧╬
  268. -------------------------------------------------------------
  269.    0,1.............. ╘&╙ OF NEXT SECTOR OF PROGRAM.
  270.    2,3.............. ╠OAD ADDRESS IN LOW BYTE, HIGH BYTE
  271.                      FORMAT (ONLY ON FIRST SECTOR OF FILE.)
  272.                      ├-64 IS USUALLY 1,8 OR 1+(8*256)=2049
  273.    4,5.............. ╠OW BYTE, HIGH BYTE NUMBER IDENTIFYING
  274.                      THE ADDRESS OF THE NEXT ┬┴╙╔├ LINE.
  275.    6,7.............. ╞IRST ┬┴╙╔├ LINE NUMBER IN ╠┬,╚┬
  276.    8-255............ ╥EST OF DATA WITH KEYWORDS TOKENIZED.
  277.                      ╘HREE ZERO BYTES MARK THE END OF A
  278.                      PROGRAM AND USUALLY THE FILE AS WELL.
  279.  
  280.  
  281. ┴S USUAL, THE FIRST TWO BYTES CONTAIN THE TRACK AND SECTOR OF THE NEXT SECTOR
  282. OF DATA.  ╘HE NEXT TWO BYTES MAY SEEM A BIT UNUSUAL TO YOU AND YOU MIGHT WANT
  283. TO GET OUT A CALCULATOR 'CAUSE AS MUCH AS ╔ HATE TO SAY IT, WE'RE GOING TO DO
  284. SOME (YES THAT DREADED WORD) ═┴╘╚.  ╞OR SOME REASON, COMPUTERS OFTEN STORE
  285. NUMBERS A LITTLE BACKWARDS (AS FAR AS HUMANS ARE CONCERNED.)  ╘HE CLASSIC CASE
  286. IS WHEN NUMBERS ARE EXPRESSED IN THE ╠╧╫ ┬┘╘┼, ╚╔╟╚ ┬┘╘┼ FORMAT.  ╙INCE EACH
  287. BYTE CAN ONLY STORE VALUES 0-255 (256 UNIQUE VALUES TOTAL), IF YOU NEED TO
  288. EXPRESS A LARGER NUMBER, YOU MUST USE MORE THAN JUST ONE BYTE.  ╘WO BYTES WORK
  289. WELL BECAUSE YOU CAN EXPRESS UP TO 65536 (OR 256*256) DIFFERENT VALUES.  ┬UT
  290. THIS IS WHERE THE COMPUTER GOES BACKWARDS.  ╘O FIND THE NUMBER SPECIFIED IN
  291. THE LOW BYTE, HIGH BYTE FORMAT, YOU MULTIPLY THE ╙┼├╧╬─ VALUE IN THE PAIR BY
  292. 256 THEN ADD THAT RESULT TO THE ╞╔╥╙╘ VALUE.  ╬OW HOW IS THAT?  ╚ERE'S AN
  293. EQUATION:
  294.  
  295.  
  296.      ╪ = (╓┴╠╒┼2 * 256) + ╓┴╠╒┼1
  297.  
  298.  
  299. ╔F YOU'RE A BIT UNEASY ABOUT THIS, DON'T WORRY, YOU ARE NOT ALONE.  ╫HENEVER
  300. WE TALK ABOUT "LOW BYTE, HIGH BYTE" NUMBERS, JUST USE THIS EQUATION AND YOU'LL
  301. BE OKAY.
  302.  
  303. ┬YTES #2 AND #3 IN THE FIRST SECTOR OF A PROGRAM FILE ALWAYS CONTAIN THE "LOAD
  304. ADDRESS" OF THE PROGRAM.  ╘HIS TELLS THE COMPUTER WHERE IN THE COMPUTER'S
  305. MEMORY TO PUT THE PROGRAM.  ╔F YOU ARE LOOKING AT A NORMAL ┬┴╙╔├ PROGRAM THIS
  306. LOW BYTE, HIGH BYTE NUMBER SHOULD EQUAL THE "START OF ┬┴╙╔├" LOCATION OF YOUR
  307. COMPUTER (THE ACTUAL START OF ┬┴╙╔├ ON ├OMMODORE MACHINES IS ONE LOCATION
  308. LOWER THAN THE VALUES SHOWN, BUT SINCE THAT BYTE ALWAYS CONTAINS A ZERO VALUE
  309. WE DO NOT CONSIDER IT HERE.)  ╘HE FOLLOWING TABLE SHOWS THE START OF ┬┴╙╔├
  310. LOCATIONS FOR ├OMMODORE MACHINES IN DECIMAL AND LOW BYTE, HIGH BYTE VALUES:
  311.  
  312.      ╙╘┴╥╘ ╧╞ ┬┴╙╔├     ═┴├╚╔╬┼
  313.      DECIMAL  LB/HB
  314. -------------------------------------------------------
  315.      2049...  1,8...... ├OMMODORE-64
  316.      7169...  1,28..... ├OMMODORE-128 (NORMAL)
  317.     16385...  1,64..... ├OMMODORE-128 (IN GRAPHIC MODE)
  318.      4097...  1,16..... ╓╔├-20 - UNEXPANDED
  319.      1025...  1,4...... ╓╔├-20 - 3╦ EXPANSION
  320.      4609...  1,18..... ╓╔├-20 - 8╦ OR MORE EXPANSION
  321.      1025...  1,4...... ╨┼╘/├┬═ SERIES.
  322.  
  323.  
  324. ╔F YOU OWN AN UNEXPANDED ╓╔├-20 THE BYTES IN POSITIONS #2 AND #3 SHOULD
  325. CONTAIN A 1 AND 16 RESPECTIVELY...1+(16*256)=4097.  ╘HE START OF ├-128 ┬┴╙╔├
  326. WILL VARY DEPENDING ON WHETHER THE PROGRAM WAS SAVED WHILE IN HI-RES GRAPHIC
  327. MODE OR NOT.  ╔N ALL CASES, THE LOAD ADDRESS APPEARS ONLY ON THE FIRST
  328. SECTOR/BLOCK OF THE FILE.
  329.  
  330. ╘HE NEXT TWO BYTES (#4 AND #5) IN A ┬┴╙╔├ PROGRAM FILE CONTAIN THE MEMORY
  331. LOCATION WHERE THE NEXT (NOT THE FIRST) ┬┴╙╔├ LINE IS STORED IN MEMORY.  ┴FTER
  332. THAT, #6 AND #7 CONTAIN THE FIRST ┬┴╙╔├ LINE NUMBER (AGAIN IN ╠┬, ╚┬.)
  333.  
  334. ╧UR ACTUAL PROGRAM TEXT BEGINS AT BYTE #8.  ╘HE VALUE STORED THERE WILL MORE
  335. THAN LIKELY BE A ┬┴╙╔├ KEYWORD WHICH HAS BEEN "TOKENIZED".  ╥EMEMBER THAT
  336. ┬┴╙╔├ REDUCES ALL OF ITS KEYWORDS TO ONE OR TWO BYTE TOKENS.  ┘OU MAY HAVE A
  337. HARD TIME FIGURING OUT WHAT KEYWORD A REVERSED "Y" STANDS FOR.  ╬EWER ├-64 AND
  338. ├-128 VERSIONS OF ╘HE ─╔╙╦ ─╧├╘╧╥ DISPLAY THE ┬┴╙╔├ KEYWORD CORRESPONDING THE
  339. TOKEN OR TOKEN PAIR UNDER THE CURSOR.  ╔F YOU ARE USING A SIMPLER VERSION, YOU
  340. MAY WANT TO LOOK IN YOUR COMPUTER'S PROGRAMMER'S REFERENCE GUIDE FOR A CHART
  341. OF WHICH KEYWORDS ARE REPRESENTED BY WHICH TOKEN VALUES.  ┴CTUALLY, A REVERSED
  342. "Y" HAS A VALUE OF 153 AND IS THE TOKEN FOR THE ┬┴╙╔├ KEYWORD ╨╥╔╬╘.  ┘OU
  343. MIGHT SEE A REVERSED "O" (VALUE-143) NEAR THE BEGINNING OF YOUR PROGRAM.  ╘HIS
  344. IS THE TOKEN FOR ╥┼═.
  345.  
  346. ╙OME OTHER CHARACTERS WHICH ARE NOT ┬┴╙╔├ TOKENS MAY SHOW UP AS WELL.  ┴ COLOR
  347. COMMAND, SUCH AS 'SWITCH TO BLACK' WITHIN A ╨╥╔╬╘ STATEMENT WILL PRODUCE A
  348. REVERSED "P" AND HAS A VALUE OF 144, BUT THAT IS THE SAME CHARACTER/TOKEN
  349. VALUE USED FOR THE ╙╘╧╨ KEYWORD.  ╚OW DOES THE COMPUTER KNOW THAT IT MEANS
  350. 'SWITCH TO BLACK' AND NOT ╙╘╧╨?  ┬ECAUSE IT IS IN QUOTES.  ┴NYTHING AFTER AN
  351. ╧── ╬╒═┬┼╥ OF QUOTES IS NOT CONSIDERED AS A ┬┴╙╔├ KEYWORD, BUT AS TEXT OR
  352. SPECIAL ╨╥╔╬╘ COMMANDS BY THE COMPUTER.  ┴NY VALUE NOT IN THE COMPUTER'S LIST
  353. FOR KEYWORDS IS ALSO NOT CONSIDERED.
  354.  
  355. ╫HILE VIEWING A PROGRAM FILE YOU WILL SURELY SEE A NUMBER OF BYTES WHICH
  356. CONTAIN ZERO VALUES (DISPLAYED AS "@"'S.)  ╘HE END OF EVERY ┬┴╙╔├ LINE IS
  357. DESIGNATED BY A ZERO BYTE.  ╔F YOU SEE THREE ZERO BYTES IN A ROW, THAT TELLS
  358. THE COMPUTER WHERE THE END OF THE ┬┴╙╔├ PROGRAM IS LOCATED.
  359.  
  360. ╨RESS THE "╬" KEY UNTIL YOU FIND THE END OF THE FILE.  ╔T SHOULD BE EASY TO
  361. SPOT BECAUSE BYTE #0 OF THE SECTOR WILL HAVE A VALUE OF ZERO (REMEMBER THIS IS
  362. THE POINTER TO THE NEXT TRACK, AND SINCE THERE IS NO NEXT TRACK...OH, YOU GET
  363. THE IDEA.)  ┬UT TAKE A GLANCE AT BYTE #1.  ╘HIS IS NOW THE POINTER TO THE
  364. POSITION OF THE ╠┴╙╘ ┬┘╘┼ IN THIS SECTOR.  ╘HIS IS THE SAME METHOD USED IN ALL
  365. FILE TYPES TO SPECIFY THE LAST BYTE IN THE LAST SECTOR.
  366.  
  367. ╘HE NEXT TWO FILE TYPES THAT WE WILL LOOK AT ARE REALLY EASY!  ╙EQUENTIAL AND
  368. ╒SER FILES, WHICH SHARE IDENTICAL FORMATS, ARE VERY STRAIGHTFORWARD.  ╔F YOU
  369. HAVE ANY ╙┼╤ FILES ON YOUR DISK, TAKE A LOOK AT ONE NOW.  ╒NLESS THE
  370. PROGRAMMER WAS DOING TRICKY THINGS, YOU SHOULD BE ABLE TO READ ALL THE
  371. INFORMATION FROM THE FILE JUST WITH ╘HE ─╔╙╦ ─╧├╘╧╥.  ╘HE ONLY "WEIRD"
  372. CHARACTERS THAT YOU SHOULD COME ACROSS ARE THE "SEPARATORS" WHICH ARE USUALLY
  373. NOTHING BUT CARRIAGE RETURNS--├╚╥$(13).  ╘HESE ARE DISPLAYED AS LOWER-CASE
  374. "M"'S AND SEPARATE THE DATA.
  375.  
  376. ╙EQUENTIAL (╙┼╤) OR ╒SER (╒╙╥) FILE FORMAT:
  377. -------------------------------------------
  378.     ┬┘╘┼    ╓┴╠╒┼    ─┼╞╔╬╔╘╔╧╬
  379. -----------------------------------------------------------
  380.    0,1.............. ╘&╙ OF NEXT DATA SECTOR.
  381.    2-256............ ─ATA STORAGE.  ╘EXT AND NUMERIC VALUES
  382.                      USUALLY SEPARATED BY ├╚╥$(13)
  383.                      (DISPLAYED AS "M".)
  384.  
  385.  
  386. ╘HE TIME HAS COME TO LOOK AT SOME OF THE MORE POWERFUL THINGS THAT ╘HE ─╔╙╦
  387. ─╧├╘╧╥ LETS YOU DO.  ╒P UNTIL NOW, ALL WE'VE REALLY DONE IS ╓╔┼╫┼─ THE
  388. DISKETTE.  ╠ET'S TAKE A STAB AT ALTERING IT.  ╧NCE AGAIN, ╔'D LIKE TO REMIND
  389. YOU TO MAKE SURE THAT THE DISKETTE YOU ARE WORKING WITH IS A COPY OF ANOTHER
  390. ONE OF YOUR DISKETTES OR CONTAINS NOTHING OF ANY VALUE TO YOU.  ╫E WON'T
  391. PHYSICALLY HARM THE DISKETTE OR DRIVE IN ANY WAY, BUT IF AN ERROR IS MADE IT
  392. COULD REALLY FOUL SOME OF YOUR FILES!
  393.  
  394. ╘HE ─╔╙╦ ─╧├╘╧╥ IS A LITTLE LIKE A WORD PROCESSOR; YOU CAN ACTUALLY TYPE RIGHT
  395. ONTO THE SCREEN BY USING THE "╘" (TEXT MODE) COMMAND.  ┴FTER PRESSING "╘"
  396. EVERYTHING YOU TYPE WILL APPEAR ON ╘HE ─╔╙╦ ─╧├╘╧╥'S SCREEN AND LATER MAY BE
  397. WRITTEN RIGHT TO THE DISKETTE.  ╨RESSING ╥┼╘╒╥╬ ENDS TEXT MODE.
  398.  
  399. ╙INCE YOU CANNOT TYPE SOME CHARACTERS OR VALUES DIRECTLY FROM THE KEYBOARD OR
  400. YOU SIMPLY MAY WANT TO ASSIGN A CERTAIN VALUE TO A CERTAIN BYTE, YOU MAY USE
  401. THE "@" (CHANGE BYTE) COMMAND.  ╚IT THE "@" KEY AND YOU MAY ENTER ANY NUMBER
  402. FROM 0-255 AND THAT VALUE WILL BE ASSIGNED TO THE CURRENT BYTE WHEN YOU PRESS
  403. ╥┼╘╒╥╬.  ╬EWER VERSIONS OF ╘HE ─╔╙╦ ─╧├╘╧╥ WILL LET YOU ENTER ╚┼╪ VALUES IF
  404. YOU PRECEDE THE NUMBER WITH A "$" (DOLLAR SIGN.)
  405.  
  406. ├ALL UP ANY SECTOR (STAY OUT OF THE DIRECTORY FOR NOW) ON YOUR PRACTICE
  407. DISKETTE AND TRY OUT THE THE CHANGING FEATURES FOR YOURSELF.  ┴NY CHANGES YOU
  408. MAKE AT THIS POINT ARE ╬╧╘ ACTUALLY MADE TO THE DISKETTE.  ┘OU ═╒╙╘ ISSUE THE
  409. "╥" (REWRITE CURRENT SECTOR) COMMAND FOR THE INFORMATION TO BE PLACED IN THAT
  410. SECTOR OF THE DISKETTE.  ┬ECAUSE YOU MAY NOT WISH TO CHANGE THE SECTOR, YOU
  411. WILL BE PROMPTED WITH "┴RE YOU SURE?" WHENEVER YOU USE THE "╥" COMMAND.  ╟O
  412. AHEAD AND REWRITE THE SECTOR YOU ARE WORKING WITH.  ╥EMEMBER THE TRACK AND
  413. SECTOR NUMBERS SO THAT YOU CAN CALL IT UP LATER TO SEE THAT THE CHANGES WERE
  414. ACTUALLY MADE.
  415.  
  416. ╬OW WE ARE GOING TO LOOK AT SOME USEFUL THINGS THAT YOU AND ╘HE ─╔╙╦ ─╧├╘╧╥
  417. CAN ACCOMPLISH.  ├ALL UP TRACK 18, SECTOR 0.  ╫ANT TO CHANGE THE NAME OF YOUR
  418. DISKETTE?  ╙IMPLY MOVE THE CURSOR TO POSITION #144 , PRESS "╘" FOR TEXT MODE,
  419. TYPE THE NEW NAME (LESS THAN 16 CHARACTERS), PRESS ╥┼╘╒╥╬ AND THEN "╥" TO
  420. REWRITE THE SECTOR.  ┴NSWER "┘" (FOR "YES") WHEN THE PROGRAM ASKS, "┴RE ┘OU
  421. ╙URE?".  ─ONE!  ╠OAD THE DIRECTORY BY TYPING- ╠╧┴─"$",8 -THEN ╠╔╙╘ AND SEE FOR
  422. YOURSELF THAT THE DISK NOW HAS A NEW NAME!
  423.  
  424. ╘RY CHANGING THE NAME OF THE DISKETTE TO INCLUDE NOT JUST TEXT WHICH YOU'VE
  425. TYPED IN, BUT A FEW DIFFERENT VALUES THAT YOU CAN CREATE WITH THE "@" COMMAND.
  426. IF YOU MAKE THE FIRST TWO BYTES OF THE NAME FIELD 13 AND 147 FOLLOWED BY TEXT,
  427. WHENEVER YOU ╠╔╙╘ THE DIRECTORY, THE SCREEN WILL CLEAR FIRST...AUTOMATICALLY!
  428.  
  429. ╫HEN YOU ╠╧┴─ THE DIRECTORY OF YOUR DISKETTE, THE DRIVE SENDS THE DATA TO THE
  430. COMPUTER IN SOMEWHAT THE SAME FORMAT AS A ┬┴╙╔├ PROGRAM.  ╘HIS IS WHY YOU CAN
  431. ╠╔╙╘ IT.  ╔F THE DISK NAME CONTAINS ANY VALUE THAT CORRESPONDS TO A ┬┴╙╔├
  432. KEYWORD, THE DISKETTE NAME WILL DISPLAY THAT KEYWORD.  ╘HIS WOULD ALLOW YOU TO
  433. HAVE DISK NAMES WHICH EXCEED THE STANDARD 16 CHARACTER LIMIT.  ╞OR EXAMPLE TRY
  434. THIS DISK NAME (THE NUMBERS STAND FOR ┬┘╘┼ ╓┴╠╒┼╙, USE THE "@" COMMAND TO
  435. ENTER THEM.  ─ON'T FORGET THE "╥" COMMAND TO PUT YOUR CHANGES ON THE
  436. DISKETTE.)
  437.  
  438. ╨╧╙╔╘╔╧╬: 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
  439.    ╓┴╠╒┼:  34 140  32 162  32 184  69  68  79  77  32 164  32  65  76  76
  440.  
  441.  
  442. ╘HE NEW DISK NAME BECOMES, "╥┼╙╘╧╥┼ ╬┼╫ ╞╥┼┼─╧═ ╘╧ ┴╠╠", A FULL 26 CHARACTERS!
  443.   ┘OU HAVE PROBABLY FIGURED OUT THAT SOME OF THE VALUES YOU ENTERED ARE THE
  444. CODES FOR ┬┴╙╔├ KEYWORDS.  ┘OU CAN PREVENT THE DIRECTORY FROM ╠╔╙╘ING ENTIRELY
  445. BY ENTERING ALL ZERO VALUES IN THE DISK NAME.
  446.  
  447. ┬YTES #162-#166 CAN ALSO BE ALTERED TO DISPLAY DIFFERENT THINGS WHEN YOU ╠╔╙╘
  448. A DIRECTORY.  ╙TART WITH POSITION #162 AND ENTER THIS SEQUENCE OF VALUES WITH
  449. THE "@" COMMAND:
  450.  
  451. ╨╧╙╔╘╔╧╬: 162 163 164 165 167    ╧╥     ╨╧╙╔╘╔╧╬: 162 163 164 165 167
  452.    ╓┴╠╒┼: 137  73 136  44 138              ╓┴╠╒┼: 194  65  66  79  79
  453.  
  454. ╘O SEE HOW THIS WORKS YOU MUST ACTUALLY ╠╧┴─ THE DIRECTORY.  ╒SING THE ─╧╙
  455. ╫┼─╟┼ "@$" COMMAND WON'T SHOW THESE "TOKEN BYTE" EFFECTS SINCE THE ╫┼─╟┼ DOES
  456. NOT TREAT THE THE DIRECTORY STRICTLY AS A ┬┴╙╔├ PROGRAM.
  457.  
  458. ┬YTES #171-#220 ARE COMPLETELY UNUSED BY THE DRIVE, SO YOU CAN PUT ANYTHING
  459. YOU WANT THERE SUCH AS YOUR NAME AND ADDRESS OR A SECRET MESSAGE.  ╘HIS SPACE
  460. MAY BE RE-WRITTEN BY THE DRIVE ON OCCASION, SO DON'T PUT ANYTHING IMPORTANT
  461. HERE.
  462.  
  463. ┘OU CAN "WRITE PROTECT" YOUR DISKETTES BY SIMPLY CHANGING THE BYTE IN POSITION
  464. #2 OF 18,0.  ╘HE VALUE OF THAT BYTE IS NORMALLY 65 (DISPLAYED AS AN "┴"), BUT
  465. IF YOU CHANGE IT TO ANYTHING ELSE, YOUR DRIVE WILL REFUSE TO WRITE TO THE
  466. DISKETTE UNTIL YOU ╬┼╫ OR ╚┼┴─┼╥ (REFORMAT) IT WHICH, OF COURSE, DESTROYS ALL
  467. THE DATA.  ╧NCE YOU CHANGE THIS BYTE DON'T EXPECT TO CHANGE IT BACK (OR
  468. ANYTHING ELSE ON THE DISKETTE FOR THAT MATTER.)  ╘HE CHANGE IS PERMANENT.
  469.  
  470. ╒SE THE "╬" COMMAND TO GO TO THE FIRST DIRECTORY SECTOR.  ╘HE MOST USEFUL
  471. BYTES IN THIS SECTOR (AND SUBSEQUENT DIRECTORY SECTORS) ARE THE "FILE TYPE"
  472. BYTES WHICH ARE THE FIRST BYTE OF EVERY FILE ENTRY.  ┴S YOU MAY RECALL, THIS
  473. BYTE IDENTIFIES THE TYPE OF FILE THAT THE ENTRY IS.  ╙OME WORD PROCESSORS WILL
  474. ONLY READ A CERTAIN TYPE OF FILE.  ╔F YOU WANT TO READ A ╨╥╟ FILE AND YOUR
  475. PROGRAM WILL ONLY ACCEPT ╙┼╤ FILES, SIMPLY CHANGE THE FILE TYPE.  ╫ITH ╘HE
  476. ─╔╙╦ ─╧├╘╧╥ YOU CAN CHANGE ╙┼╤ FILES TO ╨╥╟ FILES OR CHANGE ANY OTHER TYPE TO
  477. ANY TYPE YOU WANT.
  478.  
  479. ╫HEN A FILE IS SCRATCHED THE FILE TYPE BYTE IS CHANGED BY THE DRIVE TO ZERO.
  480. ╔F YOU HAVE JUST ACCIDENTALLY SCRATCHED A FILE YOU DO NOT WANT SCRATCHED, IT
  481. IS SIMPLE TO RESCUE IT WITH ╘HE ─╔╙╦ ─╧├╘╧╥ AS LONG AS NO NEW FILES HAVE BEEN
  482. WRITTEN TO THE DISKETTE.  ┴LL THAT NEEDS TO BE DONE IS TO CHANGE THE FILE TYPE
  483. BYTE FROM ZERO TO WHATEVER VALUE THE FILE SHOULD BE WITH THE "@" COMMAND (I.E.
  484. 130 FOR A PROGRAM FILE, 129 FOR A SEQUENTIAL FILE.)  ┘OU MUST ╓┴╠╔─┴╘┼ OR
  485. ├╧╠╠┼├╘  THE DISKETTE AFTER THIS OPERATION SO THE ┬┴═ WILL BE UPDATED.  ╘╚╔╙
  486. ╔╙ ╓┼╥┘ ╔═╨╧╥╘┴╬╘!  ╘HE ┬┴═ STILL THINKS THE FILE HAS BEEN SCRATCHED AND THAT
  487. THOSE SECTORS ARE FREE AND WILL REWRITE THEM WITH ANY NEW FILE.
  488.  
  489. ╔T IS POSSIBLE TO AVOID THE ABOVE PROBLEM BY "SCRATCH PROTECTING" SELECTED
  490. FILES ON THE DISKETTE.  ╔F YOU CHANGE THE VALUE STORED IN THE FILE TYPE BYTE,
  491. TO THAT VALUE PLUS 64, THE DRIVE WILL REFUSE TO SCRATCH THAT FILE.  ╞OR
  492. EXAMPLE, IF THE FILE IS A ╨╥╟ (VALUE:130), CHANGE THE BYTE TO 194 (130+64) TO
  493. PROTECT IT.  ╘HIS IS A VERY NICE FEATURE ESPECIALLY IF YOU EVER USE "PATTERN
  494. MATCHING" IN YOUR SCRATCH COMMANDS.  ╙CRATCH PROTECTED FILES ARE EASY TO SPOT
  495. WHEN YOU ╠╔╙╘ THE DIRECTORY (OR USE THE ─╧╙ "@$" COMMAND), A "<" (LESS THAN)
  496. SYMBOL WILL BE DISPLAYED DIRECTLY TO THE RIGHT OF THE FILE TYPE.  ╬OTE THAT
  497. THIS FEATURE IS NOT USABLE WITH DOUBLE-SIDED DISKS--THE 1571 NOT ONLY WILL
  498. REFUSE TO SCRATCH A "PROTECTED" FILE, IT WON'T ╠╧┴─ IT EITHER (WHILE IN
  499. DOUBLE-SIDED MODE.)
  500.  
  501. ╙OME OF YOU MAY HAVE HEARD THAT THERE IS A PROBLEM WITH THE ├OMMODORE 1541 AND
  502. 1571 ╙┴╓┼ AND ╥┼╨╠┴├┼ COMMAND.  ╘HE PROBLEM IS THAT OCCASIONALLY THE FILE
  503. POINTERS (BYTES #1 AND #2 OF THE FILE ENTRY) ARE NOT PROPERLY WRITTEN.  ╘HE
  504. RESULT IS THAT YOU TRY TO ╠╧┴─ "MAIL LIST" BUT "MUTANT ALIENS" SHOWS UP IN
  505. YOUR COMPUTER.  ╔T IS POSSIBLE WITH ╘HE ─╔╙╦ ─╧├╘╧╥ TO CURE THIS PROBLEM BY
  506. SEARCHING THROUGH THE DISKETTE FOR THE ORIGINAL FILE (WHICH IS EASIER SAID
  507. THAN DONE), NOTING THE TRACK AND SECTOR OF WHERE IT STARTS, AND REWRITING THE
  508. POINTERS IN THE FILE ENTRY.  ╧FTEN, IT IS TOO LATE AND OTHER DATA HAS BEEN
  509. WRITTEN INTO THE OLD SECTORS.  ╔F YOU DO SUCCESSFULLY REWRITE THE POINTERS YOU
  510. SHOULD RE╙┴╓┼ THE FILE SOMEWHERE ELSE SO THAT ┴╠╠ THE DATA IS PUT WHERE THE
  511. DISK DRIVE WANTS IT.  ┴GAIN, IT IS RECOMMENDED THAT YOU PERFORM A VALIDATE
  512. OPERATION TO UPDATE THE ┬┴═ SHOULD YOU SUCCESSFULLY REWRITE THE POINTERS.
  513.  
  514. ╔F YOU WANT TO TEMPORARILY PROTECT FILES ON YOUR DISKETTE FROM BEING ╠╧┴─ED,
  515. VIEWED OR OTHERWISE TAMPERED WITH, YOU CAN CHANGE BYTE #0 OF TRACK AND SECTOR
  516. 18,1 TO A VALUE OF ZERO.  ╘HE DRIVE WILL THINK THAT THE DIRECTORY IS ONLY ONE
  517. SECTOR LONG AND WILL REFUSE ACCESS TO ANY FILES BEYOND THE FIRST EIGHT.  ╘HE
  518. FILES YOU WANT PROTECTED SHOULD NOT APPEAR IN THE FIRST DIRECTORY SECTOR.
  519. ╥EMEMBER THAT EVEN ┘╧╒ WILL NOT BE ABLE TO GET TO THE FILE UNTIL BYTE #0 OF
  520. 18,0 IS CHANGED BACK TO 18.  ─O NOT PERFORM A ╓┴╠╔─┴╘┼ COMMAND AS THE ┬┴═ WILL
  521. THINK THAT ALL THE PROTECTED FILES DO NOT EXIST.  ┴LSO, DON'T ╙┴╓┼ ANY NEW
  522. FILES AS THE REST OF YOUR DIRECTORY MIGHT BE DESTROYED.
  523.  
  524. ┴NOTHER METHOD OF PROTECTING FILES FROM BEING ╠╧┴─ED IS TO CHANGE THE NAME OF
  525. THE FILE TO A SERIES OF ├╚╥$ CODES WHICH CANNOT NORMALLY BE TYPED IN FROM THE
  526. KEYBOARD.  ╧NE EXAMPLE WOULD BE TO CHANGE THE FILE NAME TO A CARRIAGE RETURN
  527. (VALUE: 13) BY USING THE "@" COMMAND.  ╫HEN ┘╧╒ WANT TO ╠╧┴─ THE FILE, JUST
  528. TYPE ╠╧┴─├╚╥$(13),8 (OR ANY OTHER VALUE NOT EASY TO TYPE FROM THE KEYBOARD.)
  529.  
  530. ╘AKE A LOOK AT BYTES #28 AND 29 OF A ╙╔╬╟╠┼ DIRECTORY ENTRY (REMEMBER THE FILE
  531. TYPE BYTE IS #0.)  ╘HIS IS WHERE THE DISK DRIVE STORES THE NUMBER OF SECTORS
  532. THAT THE FILE OCCUPIES IN ╠┬,╚┬ FORMAT.  ╙INCE ONE RARELY SEES A FILE THAT
  533. TAKES UP MORE THAN 255 SECTORS, BYTE #29 WILL PROBABLY CONTAIN A VALUE OF
  534. ZERO.  ┬Y ALTERING THESE TWO VALUES YOU CAN MAKE SOME PRETTY ODD FILE SIZES
  535. SHOW UP WHEN SOMEONE VIEWS THE DIRECTORY.  ├HANGING BOTH BYTES TO ZERO VALUES
  536. WILL MAKE IT SEEM THAT THE FILE OCCUPIES ZERO SECTORS.  ╟IVE BYTE #28 A VALUE
  537. OF 15 AND BYTE #29 A VALUE OF 39 AND THAT FILE WILL BE DISPLAYED AS HAVING
  538. 9999 SECTORS IN IT!
  539.  
  540. ├HANGING THE DATA STORED IN ACTUAL FILES IS A FAIRLY STRAIGHTFORWARD
  541. OPERATION.  ╙OME ┬┴╙╔├ PROGRAMS ARE "COMPACTED" WHICH MAKES EDITING SOME LINES
  542. IMPOSSIBLE WITH THE ├OMMODORE SCREEN EDITOR.  ╫ITH ╘HE ─╔╙╦ ─╧├╘╧╥ YOU CAN
  543. CHANGE THE LINE RIGHT ON THE DISKETTE WITHOUT EVER ╠╧┴─ING THE PROGRAM INTO
  544. MEMORY.  ╔N FACT, IF YOU HAVE THE ORIGINAL ─╔╙╦ ─╧├╘╧╥ PROGRAM, YOU KNOW THAT
  545. COMPANY WHO RELEASED IT INTO THE PUBLIC DOMAIN MADE IT VERY HARD TO ALTER AND
  546. BUILT ADVERTISING INTO IT.  ┘OU CAN USE ╘HE ─╔╙╦ ─╧├╘╧╥ TO ERASE ALL THAT
  547. ADVERTISING AND MAY EVEN BE ABLE TO DELETE THE OFFENDING LINES.
  548.  
  549. ╔F YOU HAVE A FAVORITE MACHINE LANGUAGE UTILITY OR GAME, IT MAY BE FUN TO
  550. CHANGE ITS PROMPTS OR TEXT.  ╟ENERALLY YOU HAVE TO HAVE A FAIRLY GOOD
  551. KNOWLEDGE OF HOW TO USE A MACHINE LANGUAGE MONITOR TO DO THIS BUT IT IS SIMPLE
  552. WHEN YOU HAVE ╘HE ─╔╙╦ ─╧├╘╧╥.  ╩UST GO THROUGH THE FILE AND CHANGE THE TEXT
  553. TO ANYTHING YOU WANT.  ╔T IS USUALLY IMPORTANT TO KEEP THE TEXT THE SAME
  554. LENGTH AS THE ORIGINAL.  ╔MAGINE SOMETHING LIKE "╩UMPMAN" IN ╙PANISH OR
  555. ╞RENCH!
  556.  
  557. ╔ HAVE ONLY TOUCHED ON A FEW POSSIBLE USES FOR ╘HE ─╔╙╦ ─╧├╘╧╥.  ┴FTER YOU
  558. HAVE WORKED WITH IT FOR SOME TIME, ╔'M SURE YOU'LL FIND MANY MORE.
  559.